/*
 * FSWUniCEUB - 2008
 * 
 * Este arquivo é de propriedade da Fábrica de Software do UniCEUB
 * 
 * Para mais informações entre em contato com a coordenação do
 * curso de Ciência da Computação da instituição.
 */

package br.uniceub.fsw.talentos.bo;

import br.uniceub.fsw.arquitetura.servico.exception.NegocioException;
import br.uniceub.fsw.talentos.dao.PerfilDAO;
import br.uniceub.fsw.talentos.vo.PerfilVO;

/**
 * Business Object da entidade Perfil. Essa classe é responsável por todos as
 * funcionalidades de negócio relacionadas à entidade.
 * 
 * @author Bruno Schifer Bernardi 2026545/5
 */
public class PerfilBO {

    PerfilDAO perfilDAO = new PerfilDAO();
    
    /**
     * Valida se já existe um registro do Perfil no Banco de Dados como verificação para inserção.
     * 
     * @param perfil perfil a ser verificado.
     * @throws br.uniceub.fsw.arquitetura.servico.exception.RegraNegocioException caso o Perfil 
     * informado não possua nome para a verificação ou já exista um Perfil com o mesmo nome no banco de dados.
     */
    public void validarVOUnico(PerfilVO perfil) throws NegocioException {
        
        if(perfil.getNoPerfil() == null || perfil.getNoPerfil().isEmpty())
            throw new NegocioException("Nome do perfil não foi informado");
        
        PerfilVO perfilExemplo = new PerfilVO();
        perfilExemplo.setNoPerfil(perfil.getNoPerfil());
        
        if(!perfilDAO.consultarPorExemplo(perfilExemplo).isEmpty())
            throw new NegocioException("Já existe uma perfil de nome " + perfil.getNoPerfil() +
                " na base de dados");
    }
}
